const app = getApp();
//引入插件：微信同声传译
const plugin = requirePlugin('WechatSI');
//获取全局唯一的语音识别管理器recordRecoManager
const manager = plugin.getRecordRecognitionManager();
var util= require('../../utils/util.js')
var tempwarn,humiwarn,luxwarn;  //温湿度和光照阈值
var id = "10*****179"   //自己的设备号
var url = "https://api.heclouds.com/devices/"+id+"/datapoints"
var apikey = "X1O48**************M3ReHM="   //自己的APIKEY
Page({
data:{
temperature:0,
humidity:0,
light:0,
pattern:"",  //为了在前端页面显示模式文字定义的工作模式变量：自动或者手动
patternbl:true,  //为了在前端页面switch组件在自动和手动模式之间切换：true为自动，false为手动
pvalue: 1,   //上传到云平台的工作模式值：1为自动，0为手动
twvalue:0,   //前端页面温度值和图片是否红色报警显示：1为红色显示，0为正常显示
hwvalue:0,   //前端页面湿度值和图片是否红色报警显示：1为红色显示，0为正常显示
lwvalue:0,   //前端页面光照度值和图片是否红色报警显示：1为红色显示，0为正常显示
lpwm:0,   //前端页面手动模式中光照度调节进度条显示的数值
tset:0,   //前端页面自动模式中温度阈值进度条显示的数值
hset:0,   //前端页面自动模式中湿度阈值进度条显示的数值
lset:0,   //前端页面自动模式中光照度阈值进度条显示的数值
ltstatus:0  //前端页面手动模式中是否出现LED亮度调节进度条：1为出现进度条，0为不出现
},

init:function(){ //获取温湿度和光照信息
  var that = this
  wx.request({
    url: url,   
    //将请求行中的数字换成自己的设备ID
    header: {
      "api-key": apikey                   
      //换成自己的api-key
    },
    data: {
      limit: 1
    },
    method: "GET",
    success: function (e) {
      console.log(e.data.data)
      //此处打印GET回来的json数据
      tempwarn = e.data.data.datastreams[10].datapoints[0].value
      humiwarn = e.data.data.datastreams[8].datapoints[0].value
      luxwarn = e.data.data.datastreams[4].datapoints[0].value
      that.setData({
        temperature: e.data.data.datastreams[0].datapoints[0].value,
        light: e.data.data.datastreams[3].datapoints[0].value,
        humidity : e.data.data.datastreams[5].datapoints[0].value,
        lpwm:e.data.data.datastreams[1].datapoints[0].value,
        pvalue:e.data.data.datastreams[6].datapoints[0].value,
        tset:tempwarn,
        hset:humiwarn,
        lset:luxwarn
      })
      if(that.data.pvalue == true){
        that.setData({
          pattern:"自动",
          patternbl:true
        })
      }else{
        that.setData({
          pattern:"手动",
          patternbl:false
        })
      }
    }
  });
},

  pattern:function(e){ //工作模式选择
    let that = this
    var status = e.detail.value  //获取工作模式，true为自动，false为手动
     if(status==true){
      that.setData({
        pattern : "自动",
        pvalue : true        
      })
      util.playTTS("当前工作模式为"+that.data.pattern)
      let data={
        "datastreams": [  
      {"id": "pattern","datapoints":[{"value": 1}]},
      //pattern是数据流的名称，value是要传上去的数值
          ]	
      }
        //发送工作模式控制云平台数据流pattern
        wx.request({
          url: url,
          header: {
            'content-type': 'application/json',
            'api-key': apikey
          },
          method: 'POST',
          data: JSON.stringify(data),//data数据转换成JSON格式
          success(res){
            console.log("成功",res.data)
          },
          fail(res){
            console.log("失败",res)
          }
        })
     }else{
      that.setData({
        pattern : "手动",
        pvalue : false
      })
      util.playTTS("当前工作模式为"+that.data.pattern)
      let data={
        "datastreams": [  
      {"id": "pattern","datapoints":[{"value": 0}]},
      //pattern是数据流的名称，value是要传上去的数值
          ]	
      }
       //发送工作模式控制云平台数据流pattern
        wx.request({
          url: url,
          header: {
            'content-type': 'application/json',
            'api-key': apikey
          },
          method: 'POST',
          data: JSON.stringify(data),//data数据转换成JSON格式
          success(res){
            console.log("成功",res.data)
          },
          fail(res){
            console.log("失败",res)
          }
        })
     }
},

ledpwm:function(e){  //调节LED灯光亮度，值越大亮度越强
  let data={
  "datastreams": [  
{"id": "ledpwm","datapoints":[{"value": e.detail.value}]},
//ledpwm是数据流的名称，value是要传上去的数值
    ]	
}
 //按钮发送命令控制硬件
  wx.request({
    url: url,
    header: {
      'content-type': 'application/json',
      'api-key': apikey
    },
    method: 'POST',
    data: JSON.stringify(data),//data数据转换成JSON格式
    success(res){
      console.log("成功",res.data)
      util.playTTS("已为您调节灯光亮度")
    },
    fail(res){
      console.log("失败",res)
    }
  })
},

kai:function(){  //开灯
  let that = this
  let data={
  "datastreams": [  
{"id": "ledbtn","datapoints":[{"value": 1}]},
//ledbtn是数据流的名称，value是要传上去的数值
    ]	
}
 //按钮发送命令控制硬件
  wx.request({
    url: url,
    header: {
      'content-type': 'application/json',
      'api-key': apikey
    },
    method: 'POST',
    data: JSON.stringify(data),//data数据转换成JSON格式
    success(res){
      console.log("成功",res.data)
      that.setData({
        ltstatus : 1
      })
      util.playTTS("灯已经打开啦")
    },
    fail(res){
      console.log("失败",res)
    }
  })
},

guan:function(){  //关灯
  let that = this
let data={
"datastreams": [  
{"id": "ledbtn","datapoints":[{"value":0}]},
//ledbtn是数据流的名称，value是要传上去的数值
  ]	
}
//按钮发送命令控制硬件
wx.request({
  url: url,
  header: {
    'content-type': 'application/json',
    'api-key': apikey
  },
  method: 'POST',
  data: JSON.stringify(data),//data数据转换成JSON格式
  success(res){
    console.log("成功",res.data)
    that.setData({
      ltstatus : 0
    })
    util.playTTS("灯已经关上啦")
  },
  fail(res){
    console.log("失败",res)
  }
})
},

kaifs:function(){  //开风扇
let data={
"datastreams": [  
{"id": "fan","datapoints":[{"value": 1}]},
//fan是数据流的名称，value是要传上去的数值
  ]	
}
//按钮发送命令控制硬件
wx.request({
  url: url,
  header: {
    'content-type': 'application/json',
    'api-key': apikey
  },
  method: 'POST',
  data: JSON.stringify(data),//data数据转换成JSON格式
  success(res){
    console.log("成功",res.data)
    util.playTTS("风扇已经打开啦")
  },
  fail(res){
    console.log("失败",res)
  }
})
},

guanfs:function(){  //关风扇
let data={
"datastreams": [  
{"id": "fan","datapoints":[{"value":0}]},
//fan是数据流的名称，value是要传上去的数值
]	
}
//按钮发送命令控制硬件
wx.request({
url: url,
header: {
  'content-type': 'application/json',
  'api-key': apikey 
},
method: 'POST',
data: JSON.stringify(data),//data数据转换成JSON格式
success(res){
  console.log("成功",res.data)
  util.playTTS("风扇已经关上啦")
},
fail(res){
  console.log("失败",res)
}
})
},

tempset:function(e){  //设置温度阈值
  let that = this
  tempwarn = e.detail.value
  let data={
  "datastreams": [  
  {"id": "tempset","datapoints":[{"value":e.detail.value}]},
  //led是数据流的名称，value是要传上去的数值
  ]	
  }
  //按钮发送命令控制硬件
  wx.request({
  url: url,
  header: {
    'content-type': 'application/json',
    'api-key': apikey
  },
  method: 'POST',
  data: JSON.stringify(data),//data数据转换成JSON格式
  success(res){
    console.log("成功",res.data)
    util.playTTS("温度阈值设置为"+tempwarn)
  },
  fail(res){
    console.log("失败",res)
  }
  })
  },

humiset:function(e){  //设置湿度阈值
  humiwarn = e.detail.value
  let data={
  "datastreams": [  
  {"id": "humiset","datapoints":[{"value":e.detail.value}]},
  ]	
  }
  //按钮发送命令控制硬件
  wx.request({
    url:url,
    header: {
      'content-type': 'application/json',
      'api-key':apikey
    },
    method: 'POST',
    data: JSON.stringify(data),//data数据转换成JSON格式
    success(res){
      console.log("成功",res.data)
      util.playTTS("湿度阈值设置为"+humiwarn)
    },
    fail(res){
      console.log("失败",res)
    }
  })
},

luxset:function(e){  //设置光照度阈值
  luxwarn = e.detail.value
  let data={
    "datastreams": [  
    {"id": "luxset","datapoints":[{"value":e.detail.value}]},
    ]	
  }
  //按钮发送命令控制硬件
  wx.request({
    url:url,
    header: {
      'content-type': 'application/json',
      'api-key':apikey
    },
    method: 'POST',
    data: JSON.stringify(data),//data数据转换成JSON格式
    success(res){
      console.log("成功",res.data)
      util.playTTS("光照度阈值设置为"+luxwarn)
    },
    fail(res){
      console.log("失败",res)
    }
  })
},

onLoad: function (options) {
  var that = this;
  setInterval(function () {
    that.init();
    if(that.data.temperature>=tempwarn){   //当前温度值高于温度阈值
      if(that.data.pvalue==1){   //当前工作模式为自动
        util.playTTS("温度过高，已打开风扇")
      }else{           //当前工作模式为手动
        util.playTTS("温度过高，请尽快处理")
      }
      that.setData({
        twvalue : 1
      })
    }else{
      that.setData({
        twvalue : 0
      })
    }
    if(that.data.humidity>=humiwarn){   //当前湿度值高于湿度阈值
      if(that.data.pvalue==1){  //当前工作模式为自动
        util.playTTS("湿度过高，已打开风扇")
      }else{    //当前工作模式为手动
        util.playTTS("湿度过高，请尽快处理")
      }
      that.setData({
        hwvalue : 1
      })
    }else{
      that.setData({
        hwvalue : 0
      })
    }
    if(that.data.light<luxwarn){      //当前光照度值低于光照度阈值
   //   if(playl == 1){
        if(that.data.pvalue==1){  //当前工作模式为自动
          util.playTTS("光照不足，已打开灯光")
        }else{   //当前工作模式为手动
          util.playTTS("光照不足，请尽快处理")
        }
      that.setData({
        lwvalue : 1
      })
    }else{
      that.setData({
        lwvalue : 0
      })
    }
  }, 8000)
},
})
